Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

Создание сайта (DarkCat)
Author Message
DarkCat
Заглянувший



Joined: 27 Dec 2004
Posts: 11
Карма: -4
   поощрить/наказать


PostPosted: Mon Dec 27, 2004 7:17 pm ()
   Post subject: Создание сайта
Reply with quote

Привет.

Честно говоря, я первый раз вижу PHP, по-этому вопрос задаю скорее философский :)
Всю жизнь занимался разработкой приложений баз данных, системным программированием и прочей скучной лабудой.
А сейчас вот решил сделать сайтик. В HTML разобраться оказалось не сложно, налепил кучу страничек, подцепил таблицу стилей, всё здорово, работает, всё красиво - ходил довольный целый день.
А на следующий день зашел к А. Лебедеву и понял что сайт - га#но :(
Всё переделал, дезигн паменял, пришлось делать copy-paste раз 50, чтобы изменить все странички.
Ну ещё пару дней довольным походил и решил ещё что-то переделать - опять 50 раз copy-paste!
вобщим надоело.
Хотелось бы всетаки сделать так, чтобы контент был отделен от оформления и чтобы измение оформления в одном месте отражалось на всех страничках где я этого хочу. В каком виде хранить контент пока не решил, может в txt, может в xml - может посоветуете.
Тока вот как это реализовывается - понятия не имею.

Вобщим вопрос: как начать?

Поставить апач - не предлагайте, уже поставил "денвер" ;)
и вот с этого момента пожалуйста поподробнее.
как сделать (покажите пример если не трудно), чтобы была страничка, пара ссылок на ней, и чтобы когда кликаеш на ссылку показывалось бы одно ("хэлоу ворлд" например), кликаеш на другую - другое (хатябы "гудбай ворлд") но тока штоб оформление одно и то же оставалось.
Back to top
View user's profile Send private message
Rumata
Профессионал



Joined: 17 Aug 2003
Posts: 1850
Карма: 185
   поощрить/наказать


PostPosted: Mon Dec 27, 2004 7:51 pm (спустя 33 минуты; написано за 7 секунд)
   Post subject:
Reply with quote

самый простой способ и не самый лучший способ

файл hello.php
Code (php): скопировать код в буфер обмена
<?php

include "_header.php";

?>
Hello, world!
<?

include "_footer.php";

?>
файл goodbye.php
Code (php): скопировать код в буфер обмена
<?php

include "_header.php";

?>
Goodbye, world!
<?

include "_footer.php";

?>
а уж в этих файлах _header.php и _footer.php "нарисовать" дизайн - верхнюю и нижнюю часть всех страниц

способ посложнее - использовать различного рода "шаблонизаторы"
Back to top
View user's profile Send private message
Navigator
Участник форума



Joined: 27 Nov 2004
Posts: 221
Карма: -12
   поощрить/наказать

Location: Павловский Посад

PostPosted: Mon Dec 27, 2004 7:56 pm (спустя 5 минут; написано за 1 минуту 33 секунды)
   Post subject:
Reply with quote

Использовать подключение заголовка, навигации, футера и проч. из отдельных файлов. Информацию хранить в БД MySQL. С движком могу помочь (ICQ 5713402 или navigator1992@mail.ru) ;)
Back to top
View user's profile Send private message
Евгений Галашин
Модератор



Joined: 29 Dec 2003
Posts: 1861
Карма: 32
   поощрить/наказать


PostPosted: Mon Dec 27, 2004 8:04 pm (спустя 7 минут; написано за 1 минуту 39 секунд)
   Post subject:
Reply with quote

DarkCat:
Купите книгу Д. Котерова PHP 5 или Самоучитель PHP 4. Если Вы и правда
DarkCat wrote:
Всю жизнь занимался разработкой приложений баз данных, системным программированием и прочей скучной лабудой.
то PHP Вам освоить -- как два байта.
Back to top
View user's profile Send private message
Navigator
Участник форума



Joined: 27 Nov 2004
Posts: 221
Карма: -12
   поощрить/наказать

Location: Павловский Посад

PostPosted: Mon Dec 27, 2004 8:05 pm (спустя 1 минуту 44 секунды; написано за 7 секунд)
   Post subject:
Reply with quote

Золотые слова ;)
Back to top
View user's profile Send private message
Педагог
Участник форума



Joined: 06 May 2003
Posts: 131
Карма: 3
   поощрить/наказать

Location: Ростов-на-Дону

PostPosted: Tue Dec 28, 2004 8:33 am (спустя 12 часов 27 минут; написано за 6 минут 11 секунд)
   Post subject:
Reply with quote

Я использую упрощенные шаблоны
Code (php): скопировать код в буфер обмена
файл-данных hello.php
<?
$BODY[text]='Hello World!';
$BODY[menu]='<a href=hello.php>хелло</a><br><a href=bye.php>гудбай</a>';
require("main.sketch.php");
?>

файл-данных bye.php
<?
$BODY[text]='Goodbye World!';
$BODY[menu]='<a href=hello.php>хелло</a><br><a href=bye.php>гудбай</a>';
require("main.sketch.php");
?>

файл-шаблон main.sketch.php
<html>
<body>
<table border=1><tr>
<td><?=$BODY[menu]?></td>
<td><?=$BODY[text]?></td>
</tr></table>
</body>
</html>
Back to top
View user's profile Send private message
Евгений Бондарев
Модератор



Joined: 10 Mar 2003
Posts: 723
Карма: 16
   поощрить/наказать

Location: Харьков/Киев, Украина

PostPosted: Tue Dec 28, 2004 10:31 am (спустя 1 час 57 минут; написано за 1 минуту 15 секунд)
   Post subject:
Reply with quote

Педагог:
Оно новичку надо? Зачем сразу сложное?
В школе Вас сначала в столбик складывать учили или учитель сразу сказал, что он использует интегралы?
Back to top
View user's profile Send private message
DarkCat
Заглянувший



Joined: 27 Dec 2004
Posts: 11
Карма: -4
   поощрить/наказать


PostPosted: Tue Dec 28, 2004 11:48 am (спустя 1 час 17 минут; написано за 22 секунды)
   Post subject:
Reply with quote

Всем спасибо за ответы.
Очень интересный пример от Педагога, тока вот что меня смущает:
Quote:
$BODY[text]='Hello World!';
$BODY[menu]='<a href=hello.php>хелло</a><br><a href=bye.php>гудбай</a>';
как это панимать?
это две переменные типа String? - судя по их значениям
или это два массива? - судя по квадратным скобкам
или один массив, но не индексированый? - судя по тому что называются они одинаково
как тогда понимать то что в скобочках - [text] и [menu]? там вроди как цифорки должны быть [0] и [1] :-/
извините если какую глупость сказал ;)

Но вобщим нисмотря ни на что, как работает - понятно.

Теперь вот ещё что:
Хотелось бы менюшку не хранить в каждом файле с данными, а сделать одну на несколько страничек, положить гденибуть отдельным файлом и чтобы она всюду вставлялась.
И тут такая проблема возникает: как передать ей параметр, указывающий какой из разделов меню подсветить как "активный"?
Back to top
View user's profile Send private message
Rumata
Профессионал



Joined: 17 Aug 2003
Posts: 1850
Карма: 185
   поощрить/наказать


PostPosted: Tue Dec 28, 2004 12:02 pm (спустя 13 минут; написано за 7 минут 50 секунд)
   Post subject:
Reply with quote

ассоциативный массив

в обычных ЯВУ (типа Паскаля) массив это сложная структура, в которой все элементы имеют одинаковое имя, но обращение к ним можно осуществить по индексу
например, массив А[1..10] содержит десять элементов A[1], A[2], ... A[10]

ассоциативный массив, это такой же массив, в котором к элементам можно обратиться по ключу. ключ в данном случае - строка
например, массив B["item1", "itemX", "item2"] содержит три элемента B["item1"], B["itemX"], B["item2"]

в итоге:
А[] - индексированный массив
B[] - ассоциативный массив

в общем случае, индексированный массив (который иногда называют список) - это частный случай ассоциативного массива, в котором ключами являются целый числа - индексы
Back to top
View user's profile Send private message
Rumata
Профессионал



Joined: 17 Aug 2003
Posts: 1850
Карма: 185
   поощрить/наказать


PostPosted: Tue Dec 28, 2004 12:05 pm (спустя 2 минуты; написано за 1 минуту 50 секунд)
   Post subject:
Reply with quote

в описании Педагога есть неточность - ему следовало писать

$BODY["menu"]
$BODY["text"]

PHP - язык интерпретирующий и позволяет создавать массивы и элементы массивов "на лету"
Back to top
View user's profile Send private message
Педагог
Участник форума



Joined: 06 May 2003
Posts: 131
Карма: 3
   поощрить/наказать

Location: Ростов-на-Дону

PostPosted: Wed Dec 29, 2004 10:02 am (спустя 21 час 57 минут; написано за 19 минут 29 секунд)
   Post subject:
Reply with quote

DarkCat wrote:
как это панимать?
Ну Rumata вам объяснил, что такое ассоциативный массив. Хочу заметить только, что можно писать как $BODY[menu], так и $BODY['menu'].
Все данные, которые вывожу в шаблоне, храню в массиве $BODY (ну еще у меня есть $HEAD, которая выводит между <head>...</head>). Просто там имхо удобней, чтобы случайно дважды не задействовать не по назначению переменные $menu и $text.
Насчет меню. Это уже урок#2 от Педагога:
Code (php): скопировать код в буфер обмена
span class="coMULTI">/*

//
$BODY[menu]='<a href=hello.php></a><br><a href=bye.php></a>';
$scriptName=preg_replace (www.php.net/preg_replace)('{.*/([^/]+$)}si','\\1',$REQUEST_URI);
$BODY[menu]=preg_replace (www.php.net/preg_replace)('{<a\s[^<>]*'.$scriptName.'[^<>]*>.*?</a>}si','<b>\\0</b>'"define.ini.php");
$BODY[text]='Hello World!';
require("main.sketch.php""define.ini.php");
$BODY[text]='Goodbye World!';
require("main.sketch.php"
В переменной $REQUEST_URI будет находиться строка с названием вызванного скрипта ('/hello.php' или '/bye.php'). Другие "системные переменные" можно постмотреть, если вставить в шаблон следующую строку <?=phpinfo()?>
Back to top
View user's profile Send private message
Евгений Галашин
Модератор



Joined: 29 Dec 2003
Posts: 1861
Карма: 32
   поощрить/наказать


PostPosted: Wed Dec 29, 2004 1:51 pm (спустя 3 часа 48 минут; написано за 42 секунды)
   Post subject:
Reply with quote

Педагог wrote:
что можно писать как $BODY[menu],
нельзя. Этот синтаксис давно устрарел и выводит нотисы.
Back to top
View user's profile Send private message
DarkCat
Заглянувший



Joined: 27 Dec 2004
Posts: 11
Карма: -4
   поощрить/наказать


PostPosted: Wed Dec 29, 2004 3:41 pm (спустя 1 час 50 минут; написано за 18 секунд)
   Post subject:
Reply with quote

Вобщем всем спасибо, очень помогли.

Если хотите могу показать что получилось: lisoft.ru
(моя вторая поделка в качестве веб-мастера и первая на PHP)

Конструктивная критика только приветствуется :)

Last edited by DarkCat on Wed Dec 29, 2004 10:04 pm; edited 1 time in total
Back to top
View user's profile Send private message
bæv
Модератор «Дзена»



Joined: 27 Aug 2003
Posts: 7275
Карма: 9986
   поощрить/наказать


PostPosted: Wed Dec 29, 2004 4:44 pm (спустя 1 час 2 минуты; написано за 1 минуту 19 секунд)
   Post subject:
Reply with quote

DarkCat wrote:
Конструктивная критика тлько приветствуется
Чё-то грузится "неприлично долго": пять минут прождал -- надоело, так и не дождался...
Back to top
View user's profile Send private message
Duchal Alexander
Участник форума



Joined: 05 Apr 2004
Posts: 571
Карма: 40
   поощрить/наказать

Location: Симферополь, Украина

PostPosted: Wed Dec 29, 2004 4:57 pm (спустя 12 минут; написано за 32 секунды)
   Post subject:
Reply with quote

baev wrote:
Чё-то грузится "неприлично долго": пять минут прождал -- надоело, так и не дождался...
Не знаю, у меня загрузился быстро, даже "Непрелично быстро", быстрее моего "творения".
Back to top
View user's profile Send private message Send e-mail
Константин Жинько [tIT]
Сотрудник «Лаборатории»



Joined: 12 Jun 2004
Posts: 2264
Карма: 106
   поощрить/наказать

Location: Москва

PostPosted: Wed Dec 29, 2004 6:29 pm (спустя 1 час 31 минуту; написано за 2 минуты 20 секунд)
   Post subject:
Reply with quote

Евгений Бондарев wrote:
В школе Вас сначала в столбик складывать учили или учитель сразу сказал, что он использует интегралы?
Если бы мне это сразу объяснили, я бы сейчас аспирантуру заканчивал, а не 11-й класс (-;
А так сколько времени впустую!

С другой стороны от программы "Hello, world!" испытываешь эйфорию, как это ни странно.
Back to top
View user's profile Send private message
DarkCat
Заглянувший



Joined: 27 Dec 2004
Posts: 11
Карма: -4
   поощрить/наказать


PostPosted: Wed Dec 29, 2004 10:01 pm (спустя 3 часа 31 минуту; написано за 36 секунд)
   Post subject:
Reply with quote

Duchal Alexander wrote:
baev wrote:
Чё-то грузится "неприлично долго": пять минут прождал -- надоело, так и не дождался...
Не знаю, у меня загрузился быстро, даже "Непрелично быстро", быстрее моего "творения".
да, я тоже проблем со скоростью не замечал :-/
Back to top
View user's profile Send private message
bæv
Модератор «Дзена»



Joined: 27 Aug 2003
Posts: 7275
Карма: 9986
   поощрить/наказать


PostPosted: Wed Dec 29, 2004 11:21 pm (спустя 1 час 20 минут; написано за 1 минуту 36 секунд)
   Post subject:
Reply with quote

baev wrote:
Чё-то грузится "неприлично долго":
Да, видимо, был некий "временный глюк" -- сейчас всё сразу загрузилось.

(Смотрел сайт, смотрел, что такое "партионная" так и не понял...)
Back to top
View user's profile Send private message
DarkCat
Заглянувший



Joined: 27 Dec 2004
Posts: 11
Карма: -4
   поощрить/наказать


PostPosted: Thu Dec 30, 2004 11:15 am (спустя 11 часов 54 минуты; написано за 1 минуту 51 секунду)
   Post subject:
Reply with quote

baev wrote:
(Смотрел сайт, смотрел, что такое "партионная" так и не понял...)
:)) Заниаюсь почтовыми технологиями уже почти два года, но о смысле этого слова никогда не задумывался
Back to top
View user's profile Send private message
Сергей доктор
Участник форума



Joined: 08 Mar 2004
Posts: 208
Карма: 2
   поощрить/наказать

Location: Глухая провинция у моря.

PostPosted: Wed Jan 05, 2005 1:27 pm (спустя 6 дней 2 часа 11 минут; написано за 13 минут 23 секунды)
   Post subject:
Reply with quote

>Насчет меню. Это уже урок#2 от Педагога : и так далее...

А я взял и упретал весь контент в базу mysql. Иключительно удобно: контентом можно оперировать как угодно, организавать поиск, "выборку", несложно.
А держать контент в файлах какой смысл? Вернее смысл есть в одном единственном случаи: если у Вас дизайном занимается отдельный человек для которого веб программирование страшный сон.
Ну, а если все делаешь сам, то исключительно удобно взять (спереть :-) два, три, красивых шаблончика а контент выводить через строку запроса из базы mysql.
Что бы другие не догадались, какой Вы на самом деле ленивый, можно и ссылки преобразовать с помошью mod_rewrite или другим, более понятным способом.
Впрочем, в уроке Педагога что то есть, пока правда не пойму что именно :-) Интуиция подсказывает что то есть :-) Может вкратце Педагог прояснит в чем суть идеи?
Back to top
View user's profile Send private message Send e-mail
Сергей доктор
Участник форума



Joined: 08 Mar 2004
Posts: 208
Карма: 2
   поощрить/наказать

Location: Глухая провинция у моря.

PostPosted: Wed Jan 05, 2005 1:55 pm (спустя 28 минут; написано за 8 минут 34 секунды)
   Post subject:
Reply with quote

Code (php): скопировать код в буфер обмена
<?
/*
//Плохой (из за того, что меню описывается несколько! раз и в случае изменения меню надо будет в // //нескольких местах производить корректирующие действия), но понятный вариант:
if ($REQUEST_URI=='/hello.php') $BODY[menu]='<a href=hello.php><b>хелло</b></a><br><a href=bye.php>гудбай</a>';
elseif ($REQUEST_URI=='/bye.php') $BODY[menu]='<a href=hello.php>хелло</a><br><a href=bye.php><b>гудбай</b></a>';
Да вот, вдогонку, не совсем ясна идея с использованием "регулярных выражений"
К примеру у меня меню сделана просто в отдельном файле, а подключается она вот так:
Code (php): скопировать код в буфер обмена
<? $htm = join (www.php.net/join) ('' , file (www.php.net/file)("menu_p.html"));
          echo (www.php.net/echo) $htm; ?>
ТОесть, сделан, определенный "аналог" SSI
В чем преемущество Вашего способа, не пойму. Такой вариант наверно оправдан, когда мы хотим каким о образом "преукрасить" посещенные ссылки меню и это недоступно нам через CSS в 'обычном' варианте.
Back to top
View user's profile Send private message Send e-mail
Дмитрий Котеров
Администратор



Joined: 10 Mar 2003
Posts: 13665
Карма: 413
   поощрить/наказать


PostPosted: Wed Jan 05, 2005 6:14 pm (спустя 4 часа 18 минут; написано за 1 минуту 1 секунду)
   Post subject:
Reply with quote

Сергей доктор wrote:
А я взял и упретал весь контент в базу mysql. Иключительно удобно: контентом можно оперировать как угодно, организавать поиск, "выборку", несложно.
С одной стороны - да. А с другой - сильно усложняется импорт-экспорт данных. Например, если Вы разрабатываете сайт на локальной машине, а потом заливаете его к хостеру (для чего Денвер и предназначен, кстати), с СУБД будут проблемы: не так-то легко из нее изменения выгрузить, а потом их загрузить на сайт.
Back to top
View user's profile Send private message Send e-mail
Сергей доктор
Участник форума



Joined: 08 Mar 2004
Posts: 208
Карма: 2
   поощрить/наказать

Location: Глухая провинция у моря.

PostPosted: Wed Jan 05, 2005 7:09 pm (спустя 54 минуты; написано за 5 минут 33 секунды)
   Post subject:
Reply with quote

>С одной стороны - да. А с другой - сильно усложняется импорт-экспорт данных. Например, если Вы >разрабатываете сайт на локальной машине, а потом заливаете его к хостеру (для чего Денвер и >предназначен, кстати), с СУБД будут проблемы: не так-то легко из нее изменения выгрузить, а потом >их загрузить на сайт
С экспортом (c денвера на хостинг) у меня проблем пока не было. Использовал три способа (через командную строку, dumper и myphpadmin) После долгих экспериментов остановился..на myphpadmine :-)
Импортом, (с хостинга в в денвер) не так часто приходится заниматься, разве что "бекапить" всю базу целиком для переноса на другой хостинг..
Back to top
View user's profile Send private message Send e-mail
Дмитрий Котеров
Администратор



Joined: 10 Mar 2003
Posts: 13665
Карма: 413
   поощрить/наказать


PostPosted: Wed Jan 05, 2005 7:59 pm (спустя 50 минут; написано за 35 секунд)
   Post subject:
Reply with quote

А если контента на 20 МБ? Тоже будете полный экспорт делать?

М

P.S.
Кнопку "Цитировать" никто не отменял, между прочим. ;-)
Back to top
View user's profile Send private message Send e-mail
bæv
Модератор «Дзена»



Joined: 27 Aug 2003
Posts: 7275
Карма: 9986
   поощрить/наказать


PostPosted: Wed Jan 05, 2005 9:29 pm (спустя 1 час 29 минут; написано за 2 минуты 24 секунды)
   Post subject:
Reply with quote

Дмитрий Котеров wrote:
А если контента на 20 МБ? Тоже будете полный экспорт делать?
Ну, лично я так и делаю -- только через шелл (mysqldump) и со сжатием, конечно. (На одном из сайтов вся база больше 70Мб, в архиве получается около 13Мб.)
Back to top
View user's profile Send private message
DarkCat
Заглянувший



Joined: 27 Dec 2004
Posts: 11
Карма: -4
   поощрить/наказать


PostPosted: Fri Jan 14, 2005 11:39 am (спустя 8 дней 14 часов 10 минут; написано за 2 минуты 27 секунд)
   Post subject:
Reply with quote

все-таки я в восторге от PHP

Переделал один шаблон и полностью изменил дизайн всего сайта,
если хотите, порадуйтесь за меня :))

lisoft.ru/index.php
Back to top
View user's profile Send private message
Solid
Заглянувший



Joined: 17 Feb 2005
Posts: 3
Карма: 0
   поощрить/наказать


PostPosted: Fri Feb 18, 2005 5:30 am (спустя 1 месяц 3 дня 17 часов 50 минут)
   Post subject:
Reply with quote

Quote:
Code (php): скопировать код в буфер обмена
span class="coMULTI">/*

//
$BODY[menu]='<a href=hello.php></a><br><a href=bye.php></a>';
$scriptName=preg_replace (www.php.net/preg_replace)('{.*/([^/]+$)}si','\\1',$REQUEST_URI);
$BODY[menu]=preg_replace (www.php.net/preg_replace)('{<a\s[^<>]*'.$scriptName.'[^<>]*>.*?</a>}si','<b>\\0</b>'"define.ini.php");
$BODY[text]='Hello World!';
require("main.sketch.php""define.ini.php");
$BODY[text]='Goodbye World!';
require("main.sketch.php"
В переменной $REQUEST_URI будет находиться строка с названием вызванного скрипта ('/hello.php' или '/bye.php'). Другие "системные переменные" можно постмотреть, если вставить в шаблон следующую строку <?=phpinfo()?>
простите что вклиниваюсь в разговор специалистов но как я понял надо создать
define.ini.php (незнаю к чему относится)
hello.php (незнаю к чему относится)
bye.php (незнаю к чему относится...может меню?)
main.sketch.php (это получается главная страница сайта?)
куда и как всё вставить в таблицы...или таблицы тут вобще не используются...
Back to top
View user's profile Send private message Send e-mail
Ka3ax
Guest





Карма: 388
   поощрить/наказать


PostPosted: Tue Nov 14, 2006 12:22 am (спустя 1 год 8 месяцев 23 дня 18 часов 51 минуту; написано за 16 минут 25 секунд)
   Post subject:
Reply with quote

Сергей доктор wrote:
> можно и ссылки преобразовать с помошью mod_rewrite или другим, более понятным способом
можно в двух словах о преобразовании на примере.
хочется ссылки на файлы (rar, ipg..) переводить на html, что бы страница
предосмотра генерировалась

читал, и здесь (www.egoroff.spb.ru/portfolio/apache/mod_rewrite.html) , по отдельности все понятно, а как собрать, что бы все функционировало , не получается.
пару примеров рабочих,хоть поторогать как оно.
Back to top
Veweb
Заглянувший



Joined: 07 Jan 2017
Posts: 6
Карма: 0
   поощрить/наказать

Location: Россия

PostPosted: Sat Jan 07, 2017 11:18 am (спустя 10 лет 1 месяц 23 дня 10 часов 56 минут; написано за 1 минуту 34 секунды)
   Post subject:
Reply with quote

Очень много всего сказано о создании сайта здесь: world-of-web.ru/category/sozdanie-sayta-sozdanie-sayta/

Кстате, там же и много ресурсов для сайта :)
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic All times are GMT + 3 Hours
Page 1 of 1    Email to a Friend.
You cannot post new topics in this forum. You cannot reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You can download files in this forum.
XML